XHTML 與 HTML 之間的差異

2021-12-06 13:49 更新

由于XHTML是一個(gè)XML應(yīng)用程序,所以必須改變?cè)诨赟GML的HTML 4中完全合法的某些實(shí)踐。在前面的章節(jié)中你已經(jīng)看到了XHTML語(yǔ)法,所以XHTML和HTML之間的差別非常明顯。以下是XHTML和HTML的比較。





比較圖表


HTML與XHTML比較圖表

HTML XHTML
介紹(來(lái)自維基百科) HTML(超文本標(biāo)記語(yǔ)言)是創(chuàng)建可以在Web瀏覽器中顯示的網(wǎng)頁(yè)和其他信息的主要標(biāo)記語(yǔ)言。
XHTML(可擴(kuò)展超文本標(biāo)記語(yǔ)言)是一系列XML標(biāo)記語(yǔ)言,它們反映或擴(kuò)展了廣泛使用的超文本標(biāo)記語(yǔ)言(HTML)的版本,即HTML頁(yè)面的編寫(xiě)語(yǔ)言。
文件擴(kuò)展名 .html,.htm .xhtml,.xht,.xml,.html,.htm
互聯(lián)網(wǎng)媒體類(lèi)型 text / html application/ XHTML + xml
開(kāi)發(fā)商 W3C和WHATWG 萬(wàn)維網(wǎng)聯(lián)盟
格式的類(lèi)型 文檔文件格式 標(biāo)記語(yǔ)言
從...延伸 SGML XML,HTML
代表 超文本標(biāo)記語(yǔ)言 可擴(kuò)展的超文本標(biāo)記語(yǔ)言
應(yīng)用 標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)的應(yīng)用。 XML的應(yīng)用
功能 網(wǎng)頁(yè)是用HTML編寫(xiě)的。 擴(kuò)展版本的HTML更嚴(yán)格,基于XML。
性質(zhì) 靈活的框架需要寬松的HTML特定的分析器。 XML的限制性子集,需要使用標(biāo)準(zhǔn)的XML解析器進(jìn)行解析。
起源 由Tim Berners-Lee于1987年提出。 2000年萬(wàn)維網(wǎng)聯(lián)盟建議書(shū)。
版本 HTML 2,HTML 3.2,HTML 4.0,HTML 5。 XHTML 1,XHTML 1.1,XHTML 2,XHTML 5。



XHTML文檔必須完善


結(jié)構(gòu)良好性是XML引入的一個(gè)新概念。實(shí)質(zhì)上,這意味著所有元素都必須有結(jié)束標(biāo)記,并且必須正確嵌套它們。

正確:嵌套的元素

<p>這是一個(gè)強(qiáng)調(diào)的<em>段落</em>。</p>

錯(cuò)誤:重疊的元素

<p>這是一個(gè)強(qiáng)調(diào)的 <em>段落。</p></em>


元素和屬性必須小寫(xiě)


XHTML文檔必須使用小寫(xiě)字母表示所有的HTML元素和屬性名稱(chēng)。這種區(qū)別是必要的,因?yàn)閄HTML文檔被假定為XML文檔,XML是區(qū)分大小寫(xiě)的。例如,<li>和<LI>是不同的標(biāo)簽。


    所有元素都需要結(jié)束標(biāo)記


    在HTML中,某些元素可以省略結(jié)束標(biāo)記。但XML不允許省略結(jié)束標(biāo)記。

    正確:終止的元素

    <p>這是一個(gè)段落。</p><p>這是另一個(gè)段落</p>
    <br><hr/>

    錯(cuò)誤:未終止的元素

    <p>這是一個(gè)段落。<p>這是另一個(gè)段落。
    <br><hr>

    必須始終引用屬性值


    所有屬性值(包括數(shù)值)都必須加引號(hào)。

    正確:引用屬性值

    <td rowspan="3">

    不正確:未引用的屬性值

    <td rowspan=3>


    屬性簡(jiǎn)寫(xiě)


    XML不支持屬性簡(jiǎn)寫(xiě)。 Attribute-value 屬性-值必須全部寫(xiě)入。屬性名稱(chēng)(如compact和checked)不能在沒(méi)有指定值的元素中出現(xiàn)。

    正確:非簡(jiǎn)寫(xiě)的屬性

    <dl compact="compact">

    錯(cuò)誤:簡(jiǎn)寫(xiě)的屬性

    <dl compact>


    屬性值中的空白處理


    當(dāng)瀏覽器處理屬性時(shí),它執(zhí)行以下操作 -

    • 帶前導(dǎo)和尾隨空格。
    • 將一個(gè)或多個(gè)空格字符(包括換行符)映射到單個(gè)單詞空間中。

    腳本和樣式元素


    在XHTML中,腳本(script)和樣式(style)元素不應(yīng)該直接存在“<”和“&”字符; 他們被視為標(biāo)記的開(kāi)始。諸如“<”和“&”的實(shí)體被XML處理器識(shí)別為實(shí)體引用,用于分別顯示“<”和“&”字符。

    在CDATA標(biāo)記部分內(nèi)包裝腳本或樣式元素的內(nèi)容可以避免這些實(shí)體的擴(kuò)展。

    <script type="text/JavaScript">
       <![CDATA[
          ... 轉(zhuǎn)義的VB或java腳本在這里... ...
    ]]> </script>

    另一種方法是使用外部腳本和樣式文檔。

    帶有id和name屬性的元素


    XHTML推薦用id屬性替換name屬性。請(qǐng)注意,在XHTML 1.0中,這些元素的名稱(chēng)屬性已被正式棄用,并將在后續(xù)版本的XHTML中被刪除。

    具有預(yù)定義值集的屬性


    HTML和XHTML都有一些具有預(yù)定義和有限值的屬性。例如,輸入元素的type屬性。在HTML和XML中,這些被稱(chēng)為枚舉屬性。在HTML 4下,這些值的解釋是不區(qū)分大小寫(xiě)的,所以TEXT的值相當(dāng)于文本的值。

    在XHTML下,這些值的解釋是區(qū)分大小寫(xiě)的,所有這些值都是以小寫(xiě)字母來(lái)定義的。

    作為十六進(jìn)制值的實(shí)體引用


    HTML和XML都允許使用十六進(jìn)制值引用字符。在HTML中,這些引用可以使用&#Xnn; 或者&#xnn; 而且它們是有效的,但在XHTML文檔中,只能使用小寫(xiě)字母,例如&#xnn; 。

    <html>元素是必須的


    所有的XHTML元素都必須嵌套在<html>根元素中。所有其他元素都可以有子元素,它們必須成對(duì)并正確嵌套在其父元素中。

    基本的文件結(jié)構(gòu)是:

    <!DOCTYPE html....>
    
    <html>
       <head> w3cschool編程教程 </head>
       <body> hgci.cn </body>
    </html>



    最后w3cschool.cn做個(gè)總結(jié)


    • 標(biāo)簽與屬性都要小寫(xiě) 
    • 別用nameid
    • 標(biāo)簽不能重疊,但可以嵌套
    • 標(biāo)簽都要有始有終,要么以</p>形式結(jié)束,要么以<br />形式結(jié)束
    • 每個(gè)屬性都要有屬性值,并且屬性值要在雙引號(hào)中


    關(guān)于XHTML語(yǔ)法將在下節(jié)XHTML 語(yǔ)法規(guī)則中做詳細(xì)說(shuō)明


    以上內(nèi)容是否對(duì)您有幫助:
    在線(xiàn)筆記
    App下載
    App下載

    掃描二維碼

    下載編程獅App

    公眾號(hào)
    微信公眾號(hào)

    編程獅公眾號(hào)